<template>
<view>
		<!--列表-->
		<scroll-view scroll-y="true" class="scroll-Y" :style="'height:' + scrollviewHigh + 'px;'" lower-threshold="50"
			@scrolltoupper="scrolltoupperFunc" @scrolltolower="scrolltolowerFunc">
			<view class="p-0-30 bg-white">
				<view class="d-b-c border-b p-20-0" v-for="(item,index) in tableData" :key="index">
					<view class="d-s-s f-w d-c flex-1">
						<text class="30">{{$t('user.withdraw')}}</text>
						<text class="gray9 f22">{{item.createTime}}</text>
					</view>
					<view class="d-s-e f-w d-c">
						<text class="red"> {{$t('user.amount',{place1:item.money})}}</text>
						<text v-if="item.applyStatus !== 50"
							:class="item.applyStatusText == $t('user.approved') ? 'green' : 'gray9'">{{item.applyStatusText}}</text>
						<!-- #ifdef  MP-WEIXIN -->
						<view class="cash-btn" v-if="item.applyStatus === 50">
							<button type="default" @click="receiptWx(item)"> {{$t('user.confirm_receipt')}} 

</button>
						</view>
						<!-- #endif -->
						<!-- #ifdef  H5 -->
						<view class="cash-btn" v-if="isWeixin() && item.applyStatus === 50">
							<button type="default" @click="receiptMp(item)"> {{$t('user.confirm_receipt')}} 

</button>
						</view>
						<!-- #endif -->
					</view>
				</view>

				<!--<view class="">
					<view class="bottom-refresh">
						<view class="d-c-c p30" v-if="tableData.length && no_more">
							<text class="gray3">亲, 没有更多了</text>
						</view>
						<view v-if="loading" class="d-c-c p30">
							<text class="gray3">加载中...</text>
						</view>
					</view>
				</view>-->
				<!-- 没有记录 -->
				<view class="d-c-c p30" v-if="tableData.length==0 && !loading">
					<text class="iconfont icon-wushuju"></text>
					<text class="cont">{{$t('user.no_records')}}</text>
				</view>
				<uni-load-more v-else :loadingType="loadingType"></uni-load-more>
			</view>
		</scroll-view>

	</view>
</template>

<script>
import uniLoadMore from "@/components/uni-load-more.vue";
//#ifdef H5
import jweixin from "weixin-js-sdk";
//#endif
export default {
  components: {
    uniLoadMore
  },
  data() {
    return {
      /*手机高度*/
      phoneHeight: 0,
      /*可滚动视图区域高度*/
      scrollviewHigh: 0,
      /*状态选中*/
      state_active: -1,
      /*数据列表*/
      tableData: [],
      no_more: false,
      loading: true,
      /*最后一页码数*/
      last_page: 0,
      /*当前页面*/
      page: 1,
      /*每页条数*/
      list_rows: 20,
      tableList: [],
      urldata: ""
    };
  },
  computed: {
    /*加载中状态*/
    loadingType() {
      if (this.loading) {
        return 1;
      } else {
        if (this.tableData.length != 0 && this.no_more) {
          return 2;
        } else {
          return 0;
        }
      }
    }
  },
  onShow(){
    uni.setNavigationBarTitle({
			title: this.$t('order.withdrawal_balance')
		})
  },
  mounted() {
    //#ifdef H5
    if (this.isWeixin()) {
      this.urldata = window.location.href;
    }
    //#endif
    /*初始化*/
    this.init();
    /*获取数据*/
    this.getData();
  },
  methods: {
    /*初始化*/
    init() {
      let self = this;
      uni.getSystemInfo({
        success(res) {
          self.phoneHeight = res.windowHeight;
          self.scrollviewHigh = res.windowHeight;
        }
      });
    },
    /*获取数据*/
    getData() {
      let self = this;
      let page = self.page;
      self.loading = true;
      let list_rows = self.list_rows;
      self._postBody('user/cash/lists', {
        status: -1,
        pageIndex: page || 1,
        pageSize: list_rows
      }, function (res) {
        self.loading = false;
        self.tableData = self.tableData.concat(res.data.records);
        self.last_page = res.data.lastPage;
        if (res.data.lastPage <= 1) {
          self.no_more = true;
          return false;
        }
      });
    },
    /*切换*/
    stateFunc(e) {
      let self = this;
      if (e != self.state_active) {
        self.tableData = [];
        self.page = 1;
        self.state_active = e;
        self.getData();
      }
    },
    /*可滚动视图区域到顶触发*/
    scrolltoupperFunc() {
      console.log('滚动视图区域到顶');
    },
    /*可滚动视图区域到底触发*/
    scrolltolowerFunc() {
      let self = this;
      if (self.page < self.last_page) {
        self.page++;
        self.getData();
      }
      self.no_more = true;
    },
    getWxSignPackage(appId, callback) {
      this._postBody("index/getSignPackage", {
        url: this.urldata,
        paySource: this.getPlatform()
      }, function (res) {
        callback(res.data.signPackage);
      });
    },
    /*用户确认已收款*/
    receiptWx(item) {
      let self = this;
      let id = item.id;
      let mchId = item.mchId;
      let appId = item.wxAppId;
      let packageInfo = item.packageInfo;
      if (wx.canIUse('requestMerchantTransfer')) {
        wx.requestMerchantTransfer({
          mchId: mchId,
          appId: appId,
          package: packageInfo,
          success: res => {
            // res.err_msg将在页面展示成功后返回应用时返回ok，并不代表付款成功
            console.log('success:', res);
            self._post("user/cash/receipt", {
              id: id
            }, function (data) {
              self.tableData = [];
              self.getData();
            });
          },
          fail: res => {
            console.log('fail:', res);
          }
        });
      } else {
        wx.showModal({
          content: this.$t("user.wx_version_too_low"),
          showCancel: false
        });
      }
    },
    /*用户确认已收款*/
    receiptMp(item) {
      let self = this;
      let id = item.id;
      let mchId = item.mchId;
      let appId = item.wxAppId;
      let packageInfo = item.packageInfo;

      // #ifdef H5
      // Dynamically fetch the sign package for WeChat JS-SDK
      self.getWxSignPackage(appId, function (signPackage) {
        jweixin.config({
          debug: false,
          appId: signPackage.appId,
          timestamp: signPackage.timestamp,
          nonceStr: signPackage.nonceStr,
          signature: signPackage.signature,
          jsApiList: ['requestMerchantTransfer']
        });
        jweixin.ready(function () {
          jweixin.checkJsApi({
            jsApiList: ['requestMerchantTransfer'],
            success: function (res) {
              if (res.checkResult['requestMerchantTransfer']) {
                WeixinJSBridge.invoke('requestMerchantTransfer', {
                  mchId: mchId,
                  appId: appId,
                  package: packageInfo
                }, function (res) {
                  if (res.err_msg === 'requestMerchantTransfer:ok') {
                    // Proceed with the post request for receipt
                    self._post("user/cash/receipt", {
                      id: id
                    }, function (data) {
                      self.tableData = [];
                      self.getData();
                    });
                  }
                });
              } else {
                alert(self.$t("user.wx_version_too_low"));
              }
            }
          });
        });
        jweixin.error(function (res) {
          console.log(res);
        });
      });
      // #endif
    }
  }
};
</script>

